package com.wyix.demo;

import com.wyix.entity.Person;
import com.wyix.entity.Student;
import com.wyix.entity.Teacher;

/**
 * @author wangdx
 * @since 2025/8/1
 */
public class SchoolSystem {
    public static void main(String[] args) {
        // 创建人员对象（父类引用指向子类对象 —— 多态体现）
        Person alice = new Student("Alice", 20, "女", "2023001", "计算机科学");
        Person bob = new Teacher("Bob", 35, "男", "T001", "Java编程");

        // 统一调用introduce()，自动执行子类重写的方法（动态绑定）
        System.out.println("=== 自我介绍环节 ===");
        alice.introduce();
        bob.introduce();

        // 类型转换：调用子类特有方法
        System.out.println("\n=== 工作/学习环节 ===");
        if (alice instanceof Student) {
            ((Student) alice).study(); // 学生学习
        }
        if (bob instanceof Teacher) {
            ((Teacher) bob).teach();   // 教师授课
        }
    }
}